1. Field of the Invention
Embodiments of the present invention generally relate to content delivery networks.
2. Description of the Related Art
Today, users can access the Internet to interact with various web sites that offer up-to-date news, reports, real-time information, games, business functions, social interfaces, search functions, telepresence, etc. Users can surf the web, download files, play games, watch streaming movies, listen to music, shop, trade stocks, take educational courses, communicate, etc. Behind all of the myriad options available over the Internet is an evolving, rapidly growing, enormous amount of content and information in the form of text, graphics, audio, video, multi-media, data, web objects, applications, real-time streams, and other content capable of internet delivery.
All of this content is typically stored on servers, which are basically powerful computers that are specially designed to store and provide or “serve” the requested content to the end users. In its infancy, the Internet was primarily limited to users accessing the particular server that contained the content of interest. Each and every user desiring that particular content, would necessarily have to request the content from the specific, dedicated server hosted by that particular content provider. This methodology proved to be flawed, in part, because users tend to be geographically dispersed. Users that are located closer to the server may receive the content relatively quickly. However, those users that are geographically remote or more distant from the server may have to wait a while for the content to be transmitted and routed through the Internet before reaching their computers. This increased latency is highly undesirable because users are forced to wait for a web page to load or for the content to be downloaded. Furthermore, simply coupling additional servers to a network backbone can cause that particular backbone to become saturated. In other words, a section of the Internet may have too much data being transmitted over it and thereby, acts as a bottleneck. Again, delivery of content is slowed down as a result.
In an effort to improve content deliver performance, content providers have implemented their own content delivery networks or content distribution networks (CDNs). Basically, a content delivery network is a group of computers and/or servers networked together via the Internet that cooperate amongst themselves to transparently deliver the content to various users in a more expeditious manner. One of the keys to CDNs is the use of strategically placed edge servers (also known as POP servers, ghost servers, cache servers, web servers, or any combination of hardware or software designed to provide services to client computers). These edge servers are typically located to provide improved geographical coverage corresponding to the end users. Hence, a user in one city (e.g., New York) may access an edge server closer to his or her location, whereas another user in a different city (e.g., Tokyo) may access an edge server closer to his or her location; and a user in another part of the world (e.g., Paris), may access a separate, different edge server which is situated in a nearby location.
In general, the CDN design of placing edge servers closer to end users means that the data packets do not have to be transmitted as far. In addition to distance, there may be other factors to consider, such as load conditions, server capacities, network bandwidths, etc., when selecting the most expeditious server for each individual user. The end result yields improvements in both latency and packet loss. From the users' perspective, they will experience faster and higher quality access to their requested content. Furthermore, if one edge server happens to malfunction, other edge servers can take over and service the requests. All of these benefits conferred by a CDN are of critical importance to the success of a content provider because users are more apt to visit their site if the content is faster, and richer, and more reliable. Increased Internet traffic to a site directly translates to more advertisement revenues.
Unfortunately, CDNs are rather expensive to install, upgrade, and maintain. The computing and network hardware can be quite expensive to purchase. It takes expert knowledge to build a CDN and also to upgrade an existing CDN. Furthermore, running, servicing, troubleshooting, and load-balancing a CDN can be quite daunting. In addition, CDNs can be notoriously inefficient. For example, a CDN for supporting a financial institution or governmental agency may be busy only during work hours; the same CDN would be grossly under-utilized at night, holidays, and weekends. Yet another downside inherent to CDNs is that it takes a relatively lengthy time to deploy a CDN. These days, content providers want to be first-to-market in order to capture a particular audience or user profile.
Although CDNs resolve some of the more immediate needs of content providers, the CDN concept still falls short in many areas.